
/**
 * DeepSeek 聊天 SSE 回應結構
 *
 * 對應後端 SSE 返回的 JSON 資料，包含 AI 回答、元數據、限流資訊、Token 使用情況等。
 */
export interface DeepSeekChatResponse {
  /**
   * 單次回應的主要內容
   */
  result?: {
    /**
     * AI 輸出內容
     */
    output?: {
      /**
       * 訊息類型（如 ASSISTANT）
       */
      messageType?: string;
      /**
       * 訊息相關元數據
       */
      metadata?: {
        /** 結束原因（如 STOP） */
        finishReason?: string;
        /** 訊息唯一 ID */
        id?: string;
        /** 角色（如 ASSISTANT） */
        role?: string;
        /** 訊息類型（如 ASSISTANT） */
        messageType?: string;
      };
      /**
       * 工具調用記錄（如有 TOOL CALLS）
       */
      toolCalls?: any[];
      /**
       * 媒體資源（如有圖片、音訊等）
       */
      media?: any[];
      /**
       * 前綴內容（如有）
       */
      prefix?: string | null;
      /**
       * 推理內容（如有）
       */
      reasoningContent?: string | null;
      /**
       * AI 回答的文字內容
       */
      text?: string;
    };
    /**
     * 回應相關元數據
     */
    metadata?: {
      /** 結束原因（如 STOP） */
      finishReason?: string;
      /** 內容過濾器（如有） */
      contentFilters?: any[];
      /** 是否為空內容 */
      empty?: boolean;
    };
  };
  /**
   * 全局元數據（如模型、限流、Token 使用等）
   */
  metadata?: {
    /** 回應唯一 ID */
    id?: string;
    /** 使用的 AI 模型名稱 */
    model?: string;
    /**
     * 限流資訊
     */
    rateLimit?: {
      /** Token 限額 */
      tokensLimit?: string;
      /** Token 重置時間（秒） */
      tokensReset?: number;
      /** 請求重置時間（秒） */
      requestsReset?: number;
      /** 請求限額 */
      requestsLimit?: string;
      /** 剩餘 Token 數 */
      tokensRemaining?: string;
      /** 剩餘請求數 */
      requestsRemaining?: string;
    };
    /**
     * Token 使用情況
     */
    usage?: {
      /** Prompt Token 數 */
      promptTokens?: number;
      /** 回應 Token 數 */
      completionTokens?: number;
      /** 總 Token 數 */
      totalTokens?: number;
      /**
       * 原生 Token 使用詳情
       */
      nativeUsage?: {
        /** 回應 Token 數 */
        completion_tokens?: number;
        /** Prompt Token 數 */
        prompt_tokens?: number;
        /** 總 Token 數 */
        total_tokens?: number;
        /** Prompt Token 詳細資訊 */
        prompt_tokens_details?: {
          /** 快取 Token 數 */
          cached_tokens?: number;
        };
      };
    };
    /** Prompt 相關元數據（如有） */
    promptMetadata?: any[];
    /** 是否為空內容 */
    empty?: boolean;
  };
  /**
   * 多結果陣列（如有多輪回應）
   */
  results?: Array<{
    /** AI 輸出內容 */
    output?: {
      /** 訊息類型（如 ASSISTANT） */
      messageType?: string;
      /** 訊息相關元數據 */
      metadata?: {
        finishReason?: string;
        id?: string;
        role?: string;
        messageType?: string;
      };
      /** 工具調用記錄 */
      toolCalls?: any[];
      /** 媒體資源 */
      media?: any[];
      /** 前綴內容 */
      prefix?: string | null;
      /** 推理內容 */
      reasoningContent?: string | null;
      /** AI 回答的文字內容 */
      text?: string;
    };
    /** 回應相關元數據 */
    metadata?: {
      finishReason?: string;
      contentFilters?: any[];
      empty?: boolean;
    };
  }>;
}

